package com.ruoyi.lease.dto.respond;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.List;

@Data
public class AtbHouseDto extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 房屋Id
     */
    @Excel(name = "房屋Id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 小区Id
     */
    @Excel(name = "小区Id")
    private Long plotId;

    /**
     * 房屋简介
     */
    @Excel(name = "房屋简介")
    private String houseName;

    /**
     * 房屋面积
     */
    @Excel(name = "房屋面积")
    private BigDecimal homeArea;

    /**
     * 卧室数量
     */
    @Excel(name = "卧室数量")
    private Long bedroom;

    /**
     * 客厅数量
     */
    @Excel(name = "客厅数量")
    private Long drawing;

    /**
     * 卫生间数量
     */
    @Excel(name = "卫生间数量")
    private Long restroom;

    /**
     * 朝向Id
     */
    @Excel(name = "朝向Id")
    private Long orientationId;

    /**
     * 期望售价
     */
    @Excel(name = "期望售价")
    private BigDecimal homePrice;

    /**
     * 平方价格
     */
    @Excel(name = "平方价格")
    private BigDecimal squarePrice;

    /**
     * 审核状态
     */
    @Excel(name = "审核状态")
    private Long isExamine;

    /**
     * 上架状态
     */
    @Excel(name = "上架状态")
    private Long isPutaway;

    /**
     * 0整租，1合租
     */
    @Excel(name = "0整租，1合租")
    private Long leaseType;

    /**
     * 省
     */
    @Excel(name = "省")
    private Long city1;

    /**
     * 市
     */
    @Excel(name = "市")
    private Long city2;

    /**
     * 区
     */
    @Excel(name = "区")
    private Long city3;

    /**
     * 地址经度
     */
    @Excel(name = "地址经度")
    private String addressLongitude;

    /**
     * 地址纬度
     */
    @Excel(name = "地址纬度")
    private String addressLatitude;

    @Excel(name = "房屋标签")
    private List<String> labelList;

    /** 具体地址 */
    @Excel(name = "具体地址")
    private String address;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setPlotId(Long plotId) {
        this.plotId = plotId;
    }

    public Long getPlotId() {
        return plotId;
    }

    public void setHouseName(String houseName) {
        this.houseName = houseName;
    }

    public String getHouseName() {
        return houseName;
    }

    public void setHomeArea(BigDecimal homeArea) {
        this.homeArea = homeArea;
    }

    public BigDecimal getHomeArea() {
        return homeArea;
    }

    public void setBedroom(Long bedroom) {
        this.bedroom = bedroom;
    }

    public Long getBedroom() {
        return bedroom;
    }

    public void setDrawing(Long drawing) {
        this.drawing = drawing;
    }

    public Long getDrawing() {
        return drawing;
    }

    public void setRestroom(Long restroom) {
        this.restroom = restroom;
    }

    public Long getRestroom() {
        return restroom;
    }

    public void setOrientationId(Long orientationId) {
        this.orientationId = orientationId;
    }

    public Long getOrientationId() {
        return orientationId;
    }

    public void setHomePrice(BigDecimal homePrice) {
        this.homePrice = homePrice;
    }

    public BigDecimal getHomePrice() {
        return homePrice;
    }

    public void setSquarePrice(BigDecimal squarePrice) {
        this.squarePrice = squarePrice;
    }

    public BigDecimal getSquarePrice() {
        return squarePrice;
    }

    public void setIsExamine(Long isExamine) {
        this.isExamine = isExamine;
    }

    public Long getIsExamine() {
        return isExamine;
    }

    public void setIsPutaway(Long isPutaway) {
        this.isPutaway = isPutaway;
    }

    public Long getIsPutaway() {
        return isPutaway;
    }

    public void setLeaseType(Long leaseType) {
        this.leaseType = leaseType;
    }

    public Long getLeaseType() {
        return leaseType;
    }

    public void setCity1(Long city1) {
        this.city1 = city1;
    }

    public Long getCity1() {
        return city1;
    }

    public void setCity2(Long city2) {
        this.city2 = city2;
    }

    public Long getCity2() {
        return city2;
    }

    public void setCity3(Long city3) {
        this.city3 = city3;
    }

    public Long getCity3() {
        return city3;
    }

    public void setAddressLongitude(String addressLongitude) {
        this.addressLongitude = addressLongitude;
    }

    public String getAddressLongitude() {
        return addressLongitude;
    }

    public void setAddressLatitude(String addressLatitude) {
        this.addressLatitude = addressLatitude;
    }

    public String getAddressLatitude() {
        return addressLatitude;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("plotId", getPlotId())
                .append("houseName", getHouseName())
                .append("homeArea", getHomeArea())
                .append("bedroom", getBedroom())
                .append("drawing", getDrawing())
                .append("restroom", getRestroom())
                .append("orientationId", getOrientationId())
                .append("homePrice", getHomePrice())
                .append("squarePrice", getSquarePrice())
                .append("isExamine", getIsExamine())
                .append("isPutaway", getIsPutaway())
                .append("createTime", getCreateTime())
                .append("leaseType", getLeaseType())
                .append("city1", getCity1())
                .append("city2", getCity2())
                .append("city3", getCity3())
                .append("addressLongitude", getAddressLongitude())
                .append("addressLatitude", getAddressLatitude())
                .append("address", getAddress())
                .toString();
    }
}
